1. Field of the Invention
The invention relates to user-machine interfaces, and more particularly, to software methods and techniques for implementing an agent-oriented architecture which is useful for user-machine interfaces.
2. Description of Related Art
Most human-machine interfaces in use today are relatively complicated and difficult to use. Frequently this is a consequence of the growing number of features to which the interface is expected to provide easy access.
Users usually have the following problems with current interfaces:                Prior to selecting an action, users have to consider whether the machine provides an appropriate action at all. It would therefore be desirable if the interface could provide feedback to the user.        It is difficult to access the actions users already know about. It would therefore be desirable if the user could freely express his or her needs without being bound to a limited set of conventions preset by the interface.        Users have to imagine what would be an appropriate action to proceed with in order to perform a certain task of the machine domain. It would therefore be desirable if the interface could guide users through the many options they may have at any stage of the interaction.        
User interfaces that adapt their characteristics to those of the user are referred to as adaptive interfaces. These interactive software systems improve their ability to interact with a user based on partial experience with that user. The user's decisions offer a ready source of training data to support learning. Every time the interface suggests some choice, the human either accepts that recommendation or rejects it, whether this feedback is explicit or simply reflected in the user's behavior.
The following general features may be desirable in a user interface:                Natural Expression: The user should be able to express his or her intentions as freely and naturally as possible.        Optimum Interaction: Interaction should be limited to the situations in which the user is in doubt as to what she/he can do next or how she/he can do it, or the system is in doubt as to what the user intends to do next. Note here that lack of interaction or feedback from the system is not necessarily desirable. Interaction is considered optimum if it occurs where it is required, no more often and no less often.        Adaptability: Adaptability could be about the changing context of interaction or application, but more importantly, the system should be able to adapt to the user's way of expressing her/his intentions. Two main issues that are taken into account in this regard are generalization and contradiction recovery.        Generalization: An adaptable system in its simplest form will learn only the instance that it has been taught (implicitly or explicitly). Generalization occurs when the system uses what it has learned to resolve problems it deems similar. The success and degree of generalization, therefore, depend on the precision of the similarity function and the threshold the system uses to distinguish between similar and dissimilar situations.        Contradiction: A system that generalizes may well over-generalize. The moment the system's reaction based on a generalization is in a manner the user does not anticipate, the system has run into a contradiction. The resolution of this contradiction is an integral part of the learning and adaptability process.        Ease of change and upgrade: The system designer should easily be able to upgrade or change the system with minimum compromise to the adaptation the system has made to users. Change should preferably be possible even at run-time (i.e., on the fly).        
Various attempts have been made to reduce the navigation effort in menu hierarchies:                Random access to menu items (e.g., key shortcuts).        Pointer setting strategies for pop-up menus provide for a faster access to a certain menu item, often the most recently or most frequently used.        Offering user assistance in selecting valid and appropriate items (e.g., grey-shading of disabled menu-items).        Action prompting according to previously selected objects (object-specific menus or dynamically exchanged control panels).        Reorganization of menus according to user-specific usage patterns.        Automating iterative patterns in interaction (for example, the Eager system, which is a Programming-By-Example system that anticipates which action the user is going to perform next).        
Most human-computer interfaces today are programmed in standard sequential or object-oriented software. Another software paradigm exists, however, which has not heretofore been used effectively for human-machine interfaces. Under this paradigm, which is known generally as an agent-based software architecture, a given task is divided up into several sub-tasks and assigned to different “agents” in the system. “Agents” are communicating concurrent modules, each of which handles a part of the decision-making process. If the agents are capable of learning, they are referred to as adaptive agents.
Some examples of situations in which agent-based interaction have been used are as follows:                Agents can be used to allow the customized presentation of information. These agents preprocess the data and display it in a way that can be unique for each individual user.        Agents can act as tutors or guides, supplementing user's knowledge with their own. These assist the current task by providing alternative views and additional relevant information.        Agents can be used for the adaptive search and retrieval of information.        
One predominant approach to the use of Agents in user interaction has been to concentrate a large bulk of the interaction responsibilities in a single agent, thus reverting to a centralized architecture. Nevertheless many real world problems are best modeled using a set of cooperating intelligent systems. Our society, for example, consists of many interacting entities. If we are interested in modeling some aspects of our society, it would be desirable to structure our model in the same way. As another example, since data often originates at different physical locations, centralized solutions are often inapplicable or inconvenient. In addition, using a number of small simple adaptive agents instead of one large complicated one may simplify the process of solving a complicated problem. In other words, agents collectively exhibit emergent behavior, where the behavior of the agent population as a whole is greater than the sum of its parts.